package org.mercworks.knightgame.model.dvo;

import java.io.Serializable;
import java.util.List;

public class Animation implements Serializable
{
	private static final long serialVersionUID = 2937984376733279082L;

	private int boneId;
	
	private List<KeyFrame> animationPosX;
	private List<KeyFrame> animationPosY;
	private List<KeyFrame> animationPosZ;
	
	private List<KeyFrame> animationRotX;
	private List<KeyFrame> animationRotY;
	private List<KeyFrame>	animationRotZ;
	
	/**
	 * @return the boneId
	 */
	public int getBoneId()
	{
		return boneId;
	}

	/**
	 * @param boneId the boneId to set
	 */
	public void setBoneId(int boneId)
	{
		this.boneId = boneId;
	}

	/**
	 * @return the animationPosX
	 */
	public List<KeyFrame> getAnimationPosX()
	{
		return animationPosX;
	}
	
	/**
	 * @param animationPosX the animationPosX to set
	 */
	public void setAnimationPosX(List<KeyFrame> animationPosX)
	{
		this.animationPosX = animationPosX;
	}
	
	/**
	 * @return the animationPosY
	 */
	public List<KeyFrame> getAnimationPosY()
	{
		return animationPosY;
	}
	
	/**
	 * @param animationPosY the animationPosY to set
	 */
	public void setAnimationPosY(List<KeyFrame> animationPosY)
	{
		this.animationPosY = animationPosY;
	}

	/**
	 * @return the animationPosZ
	 */
	public List<KeyFrame> getAnimationPosZ()
	{
		return animationPosZ;
	}
	
	/**
	 * @param animationPosZ the animationPosZ to set
	 */
	public void setAnimationPosZ(List<KeyFrame> animationPosZ)
	{
		this.animationPosZ = animationPosZ;
	}
	
	/**
	 * @return the animationRotX
	 */
	public List<KeyFrame> getAnimationRotX()
	{
		return animationRotX;
	}
	
	/**
	 * @param animationRotX the animationRotX to set
	 */
	public void setAnimationRotX(List<KeyFrame> animationRotX)
	{
		this.animationRotX = animationRotX;
	}
	
	/**
	 * @return the animationRotY
	 */
	public List<KeyFrame> getAnimationRotY()
	{
		return animationRotY;
	}
	
	/**
	 * @param animationRotY the animationRotY to set
	 */
	public void setAnimationRotY(List<KeyFrame> animationRotY)
	{
		this.animationRotY = animationRotY;
	}
	
	/**
	 * @return the animationRotZ
	 */
	public List<KeyFrame> getAnimationRotZ()
	{
		return animationRotZ;
	}
	
	/**
	 * @param animationRotZ the animationRotZ to set
	 */
	public void setAnimationRotZ(List<KeyFrame> animationRotZ)
	{
		this.animationRotZ = animationRotZ;
	}
	
	public boolean isEmpty()
	{
		return isNullOrEmpty(animationPosX) && isNullOrEmpty(animationPosY) && isNullOrEmpty(animationPosZ) &&
			isNullOrEmpty(animationRotX) && isNullOrEmpty(animationRotY) && isNullOrEmpty(animationRotZ);
	}
	
	public boolean isNullOrEmpty(List<KeyFrame> listKeyFrames)
	{
		return listKeyFrames == null || listKeyFrames.isEmpty();
	}
}
